1. Technical Field:
The invention relates to data communication interfaces between data processing systems across one or more communication channels. More particularly, the invention relates to scheduling actions relating to receipt and transmission of data packets between a data processing system across a plurality of communication channels. Still more particularly, the invention relates to providing efficient operation of communications related actions in the data communication interface while avoiding occurrence of a deadlock situation.
2. Description of the Related Art:
Microprocessor based data communication interfaces for control of communication between a host computer and several input/output devices or communication channels, handle incoming data packets over the channels, outgoing packets or messages from one or more host computer applications and communication between the interface and the host, typically through a shared memory, or a shared area of system memory. Data transmission over the communications channels is usually asynchronous, in other words messages may be incoming on all channels simultaneously, without regard to activity on the parallel channels.
In addition to handling several simultaneously active communications channels, operating at high data rates, the data communication interface has a number of duties attendant to handling communications including aiding synchronization of messages with the operation of the computer, passing status messages and performing error detection operations. Among the various tasks performed by the data communication interface are those such as acknowledgements for incoming data packets which must be performed within data communication protocol specified time out periods or which must be forwarded to a host data processing system within a maximum period for some host purpose. Immediate responsiveness to a host request, such as the handling of an outgoing message may also be desirable.
The various tasks put upon the interface processor can obviously lead to demands which conflict. This can result in the failure to handle actions in their respective required periods, leading in turn to repetition in requests or redispatch of data packets. Delay in itself leads to an increase in traffic on communication channels adding to the problem and giving rise to the potential of deadlock in the interface.
The sequence in which a data communication interface handles tasks thus has a direct impact on efficiency of the interface. An inefficient sequence can generate a deadlock at times of peak loads or when high error rates are encountered. Resort to more powerful and faster processors for the interface, without improved control of the sequencing of operations, will increase cost of the device and may prove disappointing in service. cl SUMMARY OF THE INVENTION
It is therefore one object of the invention to provide an improved data communication interface between a data processing system and one or more communication channels.
It is another object of the invention to provide a system and method for scheduling actions relating to receipt and transmission of data packets between a data processing system and a plurality of communication channels.
It is yet another object of the invention to provide a system and method for efficient dispatch of communications related actions in the data communication interface while avoiding occurrence of deadlock.
The foregoing objects are achieved as is now described. A system for and method of operating a data communication interface for handling communications between a data processing system and a plurality of communication channels is provided. The method provides for monitoring posting of tasks from the data processing system and from the plurality of communication channels. Responsive to detection of posting of a task, it is determined if the task was posted by the host data processing system. Where the task was posted from the host data processing system, it is determined if conditions permit the action to be executed at once. Responsive to an affirmative determination the action is executed. Responsive to a determination that the task was posted from the host data processing, but was not executable, the action is added to the end of a queue of actions for execution by the data communication interface. Then the first entry in the queue is examined for executability. If executable, the first action is executed and replaced as first action with the next action from the queue, if any. If the first action cannot be executed, it is moved to the end of the queue and replaced as the first action with a next action from the queue, if any. Interrupt handlers for each of several communication channels add actions to the end of the queue as required.